package br.com.sisgerenciamento.dto.empresa;

import java.io.Serializable;

import br.com.sisgerenciamento.exceptions.ApplicationException;
import br.com.sisgerenciamento.model.empresa.EmpresaVO;
import br.com.sisgerenciamento.utilidades.EstadosBrasilEnum;
import br.com.sisgerenciamento.utilidades.TreatDate;
import br.com.sisgerenciamento.utilidades.Validator;

public class EmpresaDTO implements Serializable {

	
	private static final long serialVersionUID = 1L;
	private String codigo;
	private String dataCadastro;
	private String razaoSocial;
	private String cnpj;
	private String ie;
	private String logradouro;
	private String numero;
	private String bairro;
	private String cidade;
	private Integer uf;
	private String cep;
	private String telefone;
	private String telefone2;
	private String celular;
	private String celular2;
	private String email;
	private String site;
	
	public void validar() throws ApplicationException{
		Validator validator = Validator.novo();
		
		setCnpj(validator.removerMascara(getCnpj()));
		setIe(validator.removerMascara(getIe()));
		setCep(validator.removerMascara(getCep()));
		setCelular(validator.removerMascara(getCelular()));
		setTelefone(validator.removerMascara(getTelefone()));
		
		
		validator.obrigatorio(getRazaoSocial(), getLogradouro(), getNumero(), getCidade(), getBairro(), getUf(), getCep());
		if(getCnpj() != null && !"".equals(getCnpj()))
			validator.cnpj(getCnpj());
	}
	
	public EmpresaVO getVO(){
		EmpresaVO vo = new EmpresaVO();
		
		Validator validator = Validator.novo();
		vo.setCodigo(!validator.isNullOrZero(getCodigo()) ? new Long(getCodigo()) : null );
		vo.setDataCadastro(TreatDate.parseDate(getDataCadastro()));
		vo.setRazaoSocial(getRazaoSocial());
		vo.setCnpj(getCnpj());
		vo.setIe(getIe());
		vo.setLogradouro(getLogradouro());
		vo.setNumero(getNumero());
		vo.setBairro(getBairro());
		vo.setCidade(getCidade());
		vo.setUf(EstadosBrasilEnum.getByValor(getUf()));
		vo.setCep(getCep());
		vo.setCelular(getCelular());
		vo.setCelular2(getCelular2());
		vo.setTelefone(getTelefone());
		vo.setTelefone2(getTelefone2());
		vo.setEmail(getEmail());
		vo.setSite(getSite());
		
		return vo;
	}
	
	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public String getDataCadastro() {
		return dataCadastro;
	}
	public void setDataCadastro(String dataCadastro) {
		this.dataCadastro = dataCadastro;
	}
	public String getRazaoSocial() {
		return razaoSocial;
	}
	public void setRazaoSocial(String razaoSocial) {
		this.razaoSocial = razaoSocial;
	}
	public String getCnpj() {
		return cnpj;
	}
	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}
	public String getIe() {
		return ie;
	}
	public void setIe(String ie) {
		this.ie = ie;
	}
	public String getLogradouro() {
		return logradouro;
	}
	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}
	public String getNumero() {
		return numero;
	}
	public void setNumero(String numero) {
		this.numero = numero;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public Integer getUf() {
		return uf;
	}
	public void setUf(Integer uf) {
		this.uf = uf;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
	public String getCelular() {
		return celular;
	}
	public void setCelular(String celular) {
		this.celular = celular;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getSite() {
		return site;
	}
	public void setSite(String site) {
		this.site = site;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getTelefone2() {
		return telefone2;
	}

	public void setTelefone2(String telefone2) {
		this.telefone2 = telefone2;
	}

	public String getCelular2() {
		return celular2;
	}

	public void setCelular2(String celular2) {
		this.celular2 = celular2;
	}
	
	
	
}
